/* eslint valid-jsdoc: "off" */

'use strict';
const path = require('path');

/**
 * @param {Egg.EggAppInfo} appInfo app info
 * 属性有：
 * pkg: package.json
 * name: 应用名，同pkg.name
 * baseDir:应用代码目录
 * HOME：用户目录，如 admin 账户为 /home/admin
 * root：应用根目录，只有在 local 和 unittest 环境下为 baseDir，其他都为 HOME
 * logger: logger 默认配置由框架提供
 */
module.exports = appInfo => {
  /**
   * built-in config
   * @type {Egg.EggAppConfig}
   **/
  const config = exports = {};

  // use for cookie sign key, should change to your own and keep security
  config.keys = appInfo.name + '_1607081644687_4128';

  // add your middleware config here
  config.middleware = [];

  // add your user config here
  const userConfig = {
    myAppName: 'egg',
    // 静态目录及缓存设置，egg的静态资源默认不需要配置，默认放在app/public下
    // egg.js内置了egg-static中间件，将静态资源放在projectDir/app/public中，只会经过egg-static中间件之前的中间件，最后egg-static直接响应给客户端，不会到达其后的中间件以及Router。
    // prefix这是必须指定的
    static: {
      prefix: '/', //靜態化URL  我這裏默認網站根目錄（項目需要）
      dir: path.join(appInfo.baseDir, 'app/public'), // 靜態文件夾地址 可以設置多個 可以簡寫為 ：['app/public','app/public1']
      dynamic: true, //是否緩存靜態資源
      preload: false, //啓動項目開啓緩存
      maxAge: 31536000,
      maxAge: 0, //緩存時間 開發建議設0 跳坑
      buffer: true, //是否緩存到内存 默認prod 緩存
    },
    // logger: {
    //   level: 'DEBUG',
    //   dir: `${appInfo.baseDir}/logs`,
    // },
    // view: {
    //   mapping: {
    //     '.js': 'assets',
    //     '.html': 'assets',
    //   },
    // },
    // assets: {
    //   devServer: {
    //     command: 'roadhog dev',
    //     port: 8000,
    //   },
    // }
    cors: {
      // origin: '*', //允许所有跨域访问，注释掉则允许上面 白名单 访问
      allowMethods: 'GET,HEAD,PUT,POST,DELETE,PATCH'
    },
    // security: {
    //   csrf: {
    //     enable: false,
    //     ignoreJSON: true
    //   },
    //   domainWhiteList: ['http://www.baidu.com', 'http://localhost:8080'], //配置白名单
    // },
  };

  return {
    ...config,
    ...userConfig,
  };
};
